﻿using System;
using System.Collections.Generic;
using System.Linq;
using Interfaces;

namespace Models
{
    public abstract class Enhed : IEnhed
    {
        #region Properties

        public int EnhedsId { get; set; }
        public string Navn { get; set; }
        public int AntalUdlånt { get { return Udlån.Sum(e => e.Antal); } }
        public int ResterendeAntal { get { return TotalAntal - AntalUdlånt; } }
        public int TotalAntal { get; set; }
        public DateTime OprettelsesDato { get; set; }

        public string FormateretOprettelsesdato { get { return OprettelsesDato.ToString("d/M/yyyy HH:mm"); } }
        public string EnhedsType 
        { 
            get
            {
                if (this is Computer) return "Computer";
                if (this is Diverse) return "Diverse";
                if (this is Mobil) return "Mobil";

                return "";
            }
        }

        public List<Udlån> Udlån { get; set; }
        public List<HistorikUdlån> HistorikUdlån { get; set; } 

        #endregion

        #region Creation

        protected Enhed(int enhedsId, string navn, int totalAntal, DateTime oprettelsesDato)
        {
            EnhedsId = enhedsId;
            Navn = navn;
            TotalAntal = totalAntal;
            OprettelsesDato = oprettelsesDato;

            Udlån = new List<Udlån>();
            HistorikUdlån = new List<HistorikUdlån>();
        } 

        #endregion
    }
}
